package org.easy.liblibai.dto;

import org.easy.liblibai.dto.common.LibLibAdditionalNetwork;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

@Data
public class LibLibImg2ImgParams {

    /**
     * 底模 modelVersionUUID
     */
    private String checkPointId;

    /**
     * 正向提示词
     */
    private String prompt;

    /**
     * 负面提示词
     */
    private String negativePrompt;


    private Integer clipSkip = 2;
    /**
     * 枚举采样器
     * https://liblibai.feishu.cn/wiki/UAMVw67NcifQHukf8fpccgS5n6d#share-JZcOdJYhwooL5RxFp7vc2ZXSn8e
     */
    private Integer sampler = 0;

    /**
     * 迭代步数 1-60
     */
    private Integer steps = 20;

    /**
     * 提示词引导系数1.0 ~ 15.0
     */
    private Float cfgScale = 3.5f;

    /**
     * 随机数类型0CPU 1GPU
     */
    private Integer randnSource = 0;

    /**
     * 随机种子
     * - 范围：-1 ~ 9999999999
     * - -1表示随机
     */
    private Integer seed = -1;


    /**
     * 图片数量
     */
    private Integer imgCount = 1;

    /**
     * 面部修复
     * 0：关闭，1：开启。默认值0
     */
    private Integer restoreFaces = 0;

    /**
     * 原图
     */
    private String sourceImage;
//图像相关参数

    /**
     * 缩放模式， 0 拉伸，1 裁剪，2 填充
     */
    private Integer resizeMode = 0;




    /**
     * 图像缩放后的宽度
     */
    private Long resizedWidth;

    /**
     * 图像缩放后的高度
     */
    private Long resizedHeight;

    /**
     * - 0：img2img，图生图
     * - 4：inpaint upload mask，蒙版重绘
     */
    private Integer mode = 0;

    /**
     * 重绘幅度
     */
    private float denoisingStrength = 0.75f;

    /**
     * Lora添加，最多5个
     */
    private List<LibLibAdditionalNetwork> additionalNetwork = new ArrayList<>();


}